from typing import Callable
from abc import abstractmethod, ABCMeta


class AppAdapter(metaclass=ABCMeta):
    """
    适配器的作用是为了兼容并且转换其他第三方平台的数据结构，然后生成对应 UI 模板的工具。
    """
    @abstractmethod
    def process(self, preTemplateJson: str,
                handler: Callable[[str], str]) -> str: ...

    def __str__(self) -> str:
        return f"{self.__class__.__name__}()"
